<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>eRPC Generator (erpcgen): smart_ptr&lt; T, delete_policy &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="nxp_logo_small.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">eRPC Generator (erpcgen)
   &#160;<span id="projectnumber">Rev. 1.7.4</span>
   </div>
   <div id="projectbrief">NXP Semiconductors</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classsmart__ptr.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classsmart__ptr-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">smart_ptr&lt; T, delete_policy &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Simple, standard smart pointer class.  
 <a href="classsmart__ptr.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="smart__ptr_8h_source.html">smart_ptr.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:adbcb4b7506aa3fc3117f5f40ffa925ea"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adbcb4b7506aa3fc3117f5f40ffa925ea"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>data_type</b></td></tr>
<tr class="separator:adbcb4b7506aa3fc3117f5f40ffa925ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6811e8be1e88f0f3137d81ee352666e9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6811e8be1e88f0f3137d81ee352666e9"></a>
typedef T *&#160;</td><td class="memItemRight" valign="bottom"><b>ptr_type</b></td></tr>
<tr class="separator:a6811e8be1e88f0f3137d81ee352666e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cfc53a5d8e0ba1cf4e0e3db348dc5e6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9cfc53a5d8e0ba1cf4e0e3db348dc5e6"></a>
typedef const T *&#160;</td><td class="memItemRight" valign="bottom"><b>const_ptr_type</b></td></tr>
<tr class="separator:a9cfc53a5d8e0ba1cf4e0e3db348dc5e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2262796319b01506abc773e66d583582"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2262796319b01506abc773e66d583582"></a>
typedef T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>ref_type</b></td></tr>
<tr class="separator:a2262796319b01506abc773e66d583582"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3344fbcac5ddd6bbb932bb5686165e38"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3344fbcac5ddd6bbb932bb5686165e38"></a>
typedef const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>const_ref_type</b></td></tr>
<tr class="separator:a3344fbcac5ddd6bbb932bb5686165e38"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1939a7eb7371eea65408e19d8ab7eeff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1939a7eb7371eea65408e19d8ab7eeff"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#a1939a7eb7371eea65408e19d8ab7eeff">smart_ptr</a> ()</td></tr>
<tr class="memdesc:a1939a7eb7371eea65408e19d8ab7eeff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. Initializes with no pointer set. <br /></td></tr>
<tr class="separator:a1939a7eb7371eea65408e19d8ab7eeff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af25f2b85615b48af2f829d88c63e4075"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af25f2b85615b48af2f829d88c63e4075"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#af25f2b85615b48af2f829d88c63e4075">smart_ptr</a> (ptr_type p)</td></tr>
<tr class="memdesc:af25f2b85615b48af2f829d88c63e4075"><td class="mdescLeft">&#160;</td><td class="mdescRight">This constructor takes a pointer to the object to be deleted. <br /></td></tr>
<tr class="separator:af25f2b85615b48af2f829d88c63e4075"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a052ca22fe53c35b402cde1bea5bf0236"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a052ca22fe53c35b402cde1bea5bf0236"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#a052ca22fe53c35b402cde1bea5bf0236">smart_ptr</a> (<a class="el" href="classsmart__ptr.html">smart_ptr</a>&lt; T &gt; &amp;&amp;other)</td></tr>
<tr class="memdesc:a052ca22fe53c35b402cde1bea5bf0236"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move copy constructor. <br /></td></tr>
<tr class="separator:a052ca22fe53c35b402cde1bea5bf0236"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50125e782b484e9d3965de2cfbe38ba2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a50125e782b484e9d3965de2cfbe38ba2"></a>
<a class="el" href="classsmart__ptr.html">smart_ptr</a>&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#a50125e782b484e9d3965de2cfbe38ba2">operator=</a> (<a class="el" href="classsmart__ptr.html">smart_ptr</a>&lt; T &gt; &amp;&amp;other)</td></tr>
<tr class="memdesc:a50125e782b484e9d3965de2cfbe38ba2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator. <br /></td></tr>
<tr class="separator:a50125e782b484e9d3965de2cfbe38ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d31f37a089eebb2516e349a06696d79"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#a7d31f37a089eebb2516e349a06696d79">~smart_ptr</a> ()</td></tr>
<tr class="separator:a7d31f37a089eebb2516e349a06696d79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6d32c0876260a672fc0348baf8ed1b9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae6d32c0876260a672fc0348baf8ed1b9"></a>
ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#ae6d32c0876260a672fc0348baf8ed1b9">get</a> ()</td></tr>
<tr class="memdesc:ae6d32c0876260a672fc0348baf8ed1b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the current pointer value. <br /></td></tr>
<tr class="separator:ae6d32c0876260a672fc0348baf8ed1b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0c2a080cd6a6e5f4196fa847b93e28e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad0c2a080cd6a6e5f4196fa847b93e28e"></a>
const_ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#ad0c2a080cd6a6e5f4196fa847b93e28e">get</a> () const </td></tr>
<tr class="memdesc:ad0c2a080cd6a6e5f4196fa847b93e28e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the const form of the current pointer value. <br /></td></tr>
<tr class="separator:ad0c2a080cd6a6e5f4196fa847b93e28e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0caae3f1c3cf11d2a63435473b10891d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#a0caae3f1c3cf11d2a63435473b10891d">set</a> (ptr_type p)</td></tr>
<tr class="separator:a0caae3f1c3cf11d2a63435473b10891d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac22e6f70fd19da74c9a89c4fb83e1997"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac22e6f70fd19da74c9a89c4fb83e1997"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#ac22e6f70fd19da74c9a89c4fb83e1997">reset</a> ()</td></tr>
<tr class="memdesc:ac22e6f70fd19da74c9a89c4fb83e1997"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dissociates any previously set pointer value without deleting it. <br /></td></tr>
<tr class="separator:ac22e6f70fd19da74c9a89c4fb83e1997"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2807151c41c9d4901d41cf9a9c549a5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2807151c41c9d4901d41cf9a9c549a5"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#af2807151c41c9d4901d41cf9a9c549a5">clear</a> ()</td></tr>
<tr class="memdesc:af2807151c41c9d4901d41cf9a9c549a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dissociates a previously set pointer value, deleting it at the same time. <br /></td></tr>
<tr class="separator:af2807151c41c9d4901d41cf9a9c549a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c9bd9d75bb4557219cd616b06e3d0a4"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#a9c9bd9d75bb4557219cd616b06e3d0a4">safe_delete</a> ()</td></tr>
<tr class="separator:a9c9bd9d75bb4557219cd616b06e3d0a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Operators</div></td></tr>
<tr class="memitem:af5971f1c29161330f75e850b0ae217ca"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af5971f1c29161330f75e850b0ae217ca"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#af5971f1c29161330f75e850b0ae217ca">operator ptr_type</a> ()</td></tr>
<tr class="memdesc:af5971f1c29161330f75e850b0ae217ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the object transparent as the template type. <br /></td></tr>
<tr class="separator:af5971f1c29161330f75e850b0ae217ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f326a731cdfd9a84a880c846ad9a054"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7f326a731cdfd9a84a880c846ad9a054"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#a7f326a731cdfd9a84a880c846ad9a054">operator const_ptr_type</a> () const </td></tr>
<tr class="memdesc:a7f326a731cdfd9a84a880c846ad9a054"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const version of the pointer operator. <br /></td></tr>
<tr class="separator:a7f326a731cdfd9a84a880c846ad9a054"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80f82227c8333fa9b3831bc359751d3f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a80f82227c8333fa9b3831bc359751d3f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#a80f82227c8333fa9b3831bc359751d3f">operator ref_type</a> ()</td></tr>
<tr class="memdesc:a80f82227c8333fa9b3831bc359751d3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the object transparent as a reference of the template type. <br /></td></tr>
<tr class="separator:a80f82227c8333fa9b3831bc359751d3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3226dfaa179ce3499a4b794a0ce1fddf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3226dfaa179ce3499a4b794a0ce1fddf"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#a3226dfaa179ce3499a4b794a0ce1fddf">operator const_ref_type</a> () const </td></tr>
<tr class="memdesc:a3226dfaa179ce3499a4b794a0ce1fddf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Const version of the reference operator. <br /></td></tr>
<tr class="separator:a3226dfaa179ce3499a4b794a0ce1fddf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b0290ca9165026a0e1563d1f8be7237"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b0290ca9165026a0e1563d1f8be7237"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#a0b0290ca9165026a0e1563d1f8be7237">operator bool</a> () const </td></tr>
<tr class="memdesc:a0b0290ca9165026a0e1563d1f8be7237"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a boolean indicating whether the object has a pointer set or not. <br /></td></tr>
<tr class="separator:a0b0290ca9165026a0e1563d1f8be7237"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12fdbc182eebb7ce6e1a1a1520525a2e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a12fdbc182eebb7ce6e1a1a1520525a2e"></a>
<a class="el" href="classsmart__ptr.html">smart_ptr</a>&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#a12fdbc182eebb7ce6e1a1a1520525a2e">operator=</a> (ptr_type p)</td></tr>
<tr class="memdesc:a12fdbc182eebb7ce6e1a1a1520525a2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">To allow setting the pointer directly. Equivalent to a call to <a class="el" href="classsmart__ptr.html#a0caae3f1c3cf11d2a63435473b10891d">set()</a>. <br /></td></tr>
<tr class="separator:a12fdbc182eebb7ce6e1a1a1520525a2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1aec2e35f454774cc148ce2c0b6dd89"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae1aec2e35f454774cc148ce2c0b6dd89"></a>
ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#ae1aec2e35f454774cc148ce2c0b6dd89">operator-&gt;</a> ()</td></tr>
<tr class="memdesc:ae1aec2e35f454774cc148ce2c0b6dd89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Another operator to allow you to treat the object just like a pointer. <br /></td></tr>
<tr class="separator:ae1aec2e35f454774cc148ce2c0b6dd89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a133c9877c1e23183b84cd3c64eb029a5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a133c9877c1e23183b84cd3c64eb029a5"></a>
const_ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#a133c9877c1e23183b84cd3c64eb029a5">operator-&gt;</a> () const </td></tr>
<tr class="memdesc:a133c9877c1e23183b84cd3c64eb029a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Another operator to allow you to treat the object just like a pointer. <br /></td></tr>
<tr class="separator:a133c9877c1e23183b84cd3c64eb029a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:af63ba73813022a51c264fce36e6e5a62"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af63ba73813022a51c264fce36e6e5a62"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#af63ba73813022a51c264fce36e6e5a62">smart_ptr</a> (const <a class="el" href="classsmart__ptr.html">smart_ptr</a>&lt; T &gt; &amp;)=delete</td></tr>
<tr class="memdesc:af63ba73813022a51c264fce36e6e5a62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disable the copy constructor. <br /></td></tr>
<tr class="separator:af63ba73813022a51c264fce36e6e5a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8065bdb1227bacb641ba9ea4297d09b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad8065bdb1227bacb641ba9ea4297d09b"></a>
<a class="el" href="classsmart__ptr.html">smart_ptr</a>&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#ad8065bdb1227bacb641ba9ea4297d09b">operator=</a> (const <a class="el" href="classsmart__ptr.html">smart_ptr</a>&lt; T &gt; &amp;)=delete</td></tr>
<tr class="memdesc:ad8065bdb1227bacb641ba9ea4297d09b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disable assignment operator. <br /></td></tr>
<tr class="separator:ad8065bdb1227bacb641ba9ea4297d09b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:aea22fa343d02cccef154a4c584388457"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea22fa343d02cccef154a4c584388457"></a>
ptr_type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsmart__ptr.html#aea22fa343d02cccef154a4c584388457">_p</a></td></tr>
<tr class="memdesc:aea22fa343d02cccef154a4c584388457"><td class="mdescLeft">&#160;</td><td class="mdescRight">The wrapped pointer. <br /></td></tr>
<tr class="separator:aea22fa343d02cccef154a4c584388457"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T, class delete_policy = smart_ptr_delete&lt;T&gt;&gt;<br />
class smart_ptr&lt; T, delete_policy &gt;</h3>

<p>Simple, standard smart pointer class. </p>
<p>This class only supports the single-owner paradigm. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a7d31f37a089eebb2516e349a06696d79"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class delete_policy  = smart_ptr_delete&lt;T&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classsmart__ptr.html">smart_ptr</a>&lt; T, delete_policy &gt;::~<a class="el" href="classsmart__ptr.html">smart_ptr</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Destructor. If an object (pointer) has been set, it will be deleted. Deletes the object using <a class="el" href="classsmart__ptr.html#a9c9bd9d75bb4557219cd616b06e3d0a4">safe_delete()</a>. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a9c9bd9d75bb4557219cd616b06e3d0a4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class delete_policy  = smart_ptr_delete&lt;T&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classsmart__ptr.html">smart_ptr</a>&lt; T, delete_policy &gt;::safe_delete </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Forces immediate deletion of the object. If you are planning on using this method, think about just using a normal pointer. It probably makes more sense. </p>

</div>
</div>
<a class="anchor" id="a0caae3f1c3cf11d2a63435473b10891d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T , class delete_policy  = smart_ptr_delete&lt;T&gt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classsmart__ptr.html">smart_ptr</a>&lt; T, delete_policy &gt;::set </td>
          <td>(</td>
          <td class="paramtype">ptr_type&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Change the pointer value, or set if if the default constructor was used. If a pointer had previously been associated with the object, and <em>p</em> is different than that previous pointer, it will be deleted before taking ownership of <em>p</em>. If this is not desired, call <a class="el" href="classsmart__ptr.html#ac22e6f70fd19da74c9a89c4fb83e1997" title="Dissociates any previously set pointer value without deleting it. ">reset()</a> beforehand. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="smart__ptr_8h_source.html">smart_ptr.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul class="foot">
    <li class="footer">Copyright 2016-2020 NXP Semiconductors. All rights reserved.
    </li>
  </ul>
</div>
</body>
</html>
